// app.js
let config = require("./utils/config");
import {http} from "./utils/request";
App({
  globalData: {
    userInfo: null,
    seetimes: [], //记录观看直播的观看时长
    playbacks: [], //记录观看回放的进度位置
    firstShow: false,  //是否重新打开的小程序
  },

  onLaunch() {
    // 展示本地存储能力
    // const logs = wx.getStorageSync('logs') || []
    // logs.unshift(Date.now())
    // wx.setStorageSync('logs', logs)
  },

  onShow(){
    // 设置转发分享非私密，微信可以二次转发
    wx.updateShareMenu({
      isPrivateMessage: false
    })
    // 检测更新
    this.checkUpdateTap();
    //如果有缓存，去更新相关用户信息
    config.getLoginInfo();
    if(config.OPENID() && config.TEL()){
      this.updateRole();
      return;
    }
    //如果无缓存，获取openid、token
    let that = this;
    that.globalData.firstShow = true;
    wx.login({
      success: res => {
        // console.log("微信code：", res.code)
        that.getOpenId(res.code);
      }
    })
    
  },
  
  /** 获取openid */
  getOpenId(code){
    let _this = this;
    http.requestData("POST", "WeChat/GetOpenId",{
      code: code,
      Version: config.APP_VERSION
    }).then(res=>{
      if(res.Tag == 10){
        let userInfo = {
          OPENID: res.Message?res.Message:"", //openid
          TOKEN: res.Data?res.Data:"" //token
        }
        if(res.Extend && res.Extend.user){
          userInfo.NICKNAME = res.Extend.user.Nickname;
          userInfo.TEL = res.Extend.user.Mobile;
          userInfo.UID = res.Extend.user.Id;
          userInfo.HEADURL = res.Extend.user.Portrait;
          userInfo.ROLE = res.Extend.Manager;
        }
        wx.setStorageSync(config.LOGIN_KEY, userInfo);
        config.getLoginInfo();
        if(_this.initCallBack){
          _this.initCallBack();
        }
      }else{
        http.showToast(res.Message);
      }
    })
  },

  /** 根据缓存信息更新用户信息 */
  updateRole(){
    let _this = this;
    http.requestData("POST", "WeChat/GetOpenIdBrief",{
      AppletId: config.OPENID(),
      Mobile: config.TEL(),
      Version: config.APP_VERSION
    }).then(res=>{
      if(res.Tag == 10){
        let user = wx.getStorageSync(config.LOGIN_KEY);
        if(res.Extend){
          user.ROLE = res.Extend.Manager;
          if(res.Extend.user){
            // user.OPENID = res.Extend.user.AppletId;
            user.NICKNAME = res.Extend.user.Nickname;
            user.UID = res.Extend.user.Id;
            user.TEL = res.Extend.user.Mobile;
            user.HEADURL = res.Extend.user.Portrait;
          }
        }
        wx.setStorageSync(config.LOGIN_KEY, user);
        config.getLoginInfo();
        if(_this.initCallBack){
          _this.initCallBack();
        }
      }else{
        http.showToast(res.Message);
      }
    })
  },

  /** 检测更新 */
  checkUpdateTap: function () {
    if (wx.canIUse('getUpdateManager')) {
      const updateManager = wx.getUpdateManager();
      updateManager.onCheckForUpdate(function (res) {
        // 请求完新版本信息的回调
        if (res.hasUpdate) {
          wx.showLoading({ title: '更新下载中...' });
          updateManager.onUpdateReady(function () {
            wx.hideLoading();
            setTimeout(() => {
              wx.showModal({
                title: '更新提示',
                showCancel: false,
                content: '已有新的版本上线了，请重启应用？',
                success: function (_res) {
                  if (_res.confirm) {
                    updateManager.applyUpdate(); //重启小程序
                  }
                }
              })
            }, 3000);
          })
          // 新的版本下载失败
          updateManager.onUpdateFailed(function () {
            wx.hideLoading();
            wx.showModal({
              title: '更新提示',
              content: '已有新版本发布，请您删除当前小程序，重新搜索打开',
            })
          })
        }
      })
    } else {
      wx.showModal({
        title: '更新提示',
        content: '当前微信版本过低，无法自动更新，请您删除当前小程序，重新搜索打开',
      })
    }
  },

})
